package com.sdhs.myproject.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sdhs.common.annotation.Excel;
import com.sdhs.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
;

/**
 * 我的项目--项目合同信息对象 gc_myproject_contract_information
 *
 * @author andong
 * @date 2025-03-11
 */
@Data
public class GcMyprojectContractInformation extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 项目合同信息主键 */
    private Long id;

    /** 关联项目信息主键 */
    @Excel(name = "关联项目信息主键")
    private Long projectId;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String contractNumber;

    /** 合同名称 */
    @Excel(name = "合同名称")
    private String contractName;

    /** 合同类型，枚举 */
    @Excel(name = "合同类型，枚举")
    private String contractType;

    /** 收支类型，枚举 */
    @Excel(name = "收支类型，枚举")
    private String incomeExpenditureType;

    /** 合同相对方 */
    @Excel(name = "合同相对方")
    private String contractParty;

    /** 合同金额 */
    @Excel(name = "合同金额")
    private BigDecimal contractMoney;

    /** 签约时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签约时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signingTime;

    /** 传过来的合同id */
    @Excel(name = "传过来的合同id")
    private String contractId;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String num;

    /** 合同归属单位 */
    @Excel(name = "合同归属单位")
    private String companyName;

    /** 合同名称 */
    @Excel(name = "合同名称")
    private String name;

    /** 合同大类 */
    @Excel(name = "合同大类")
    private String mainType;

    /** 合同小类 */
    @Excel(name = "合同小类")
    private String subType;

    /** 合同文本地址 */
    private String fileUrl;

    /** 收支类型 */
    @Excel(name = "收支类型")
    private String incomeExpenseType;

    /** 合同金额(含税),元 */
    @Excel(name = "合同金额(含税),元")
    private BigDecimal money;

    /** 签订日期 */
    @Excel(name = "签订日期")
    private String signDate;

    /** 是否补充合同;1:是;0:否 */
    @Excel(name = "是否补充合同;1:是;0:否")
    private String isSupplementaryContract;

    /** 主合同编号 */
    @Excel(name = "主合同编号")
    private String originalContractNum;

    /** 变更后总金额(含税),元 */
    @Excel(name = "变更后总金额(含税),元")
    private BigDecimal changeMoney;

    /** 总金额币种代码 */
    @Excel(name = "总金额币种代码")
    private String currencyCode;

    /** 总金额币种名称 */
    @Excel(name = "总金额币种名称")
    private String currencyName;



    /** 合同归属单位Id */
    @Excel(name = "合同归属单位Id")
    private String companyId;

    /** 是否删除 */
    @Excel(name = "是否删除")
    private String isDelete;

    /** 组装后的相对方数据 */
    private String bussName;

    private List<GcMyprojectContractInformation> children;
    // 收入类合同总金额
    private BigDecimal totalFillMoney;
    // 支出类合同总金额
    private BigDecimal totalPayMoney;
    // 成本控制总金额
    private BigDecimal managementMoney;
    // 回款总金额
    private BigDecimal fillMoney;
    // 支出总金额
    private BigDecimal payMoney;

    /** 已开票金额（含税）{支付跟踪/回款跟踪}*/
    private BigDecimal invoicedAmount;

    /** 已开票金额（不含税）{支付跟踪/回款跟踪} */
    private BigDecimal notInvoicedAmount;

    /** 已开票比例{支付跟踪/回款跟踪} */
    private BigDecimal proportionInvoicedMounts;

    /** 未开发票金额（含税）{支付跟踪/回款跟踪}*/
    private BigDecimal uninvoicedAmount;

    /**未开发票比例{支付跟踪/回款跟踪}*/
    private BigDecimal proportionUnissuedInvoices;

    /**收入确认金额(收入类合同)*/
    private BigDecimal amountRevenueRecognized;
    /**收入确认金额（不含税）(收入类合同)*/
    private BigDecimal notAmountRevenueRecognized;

    /** 收入确认比例(收入类合同)*/
    private BigDecimal revenueRecognitionRatio;

    /**已回款金额(收入类合同)*/
    private BigDecimal amountAlreadyReceived;

    /** 已回款比例(收入类合同)*/
    private BigDecimal proportionPaymentsReceived;

    /**应收账款(收入类合同)*/
    private BigDecimal accountsReceivable;

    /**合同资产(收入类合同)*/
    private BigDecimal contractAssets;

    /**成本确认金额(支出类合同) */
    private BigDecimal costConfirmationAmount;

    /**成本确认金额(不含税)(支出类合同) */
    private BigDecimal notCostConfirmationAmount;

    /**成本确认比例(支出类合同)*/
    private BigDecimal costConfirmationRatio;

    /** 已付款金额(支出类合同)*/
    private BigDecimal amountPaid;

    /**已付款比例(支出类合同) */
    private BigDecimal percentagePaymentRatio;

    /**应付账款(支出类合同)*/
    private BigDecimal accountsPayable;
}
